package jsu.xxy.coffee3.Utils;

import jsu.xxy.coffee3.domain.*;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.List;

@Service
public class ExcelOutUtil{

//    public static   XSSFWorkbook getDeviceDataByExcel(List<Student> list , List<Integer> column) {
//        //先查出数据库数据
//        XSSFWorkbook wb = new XSSFWorkbook();
//        //创建一张表
//        Sheet sheet = wb.createSheet("deviceData");
//        //创建第一行，起始为0
//        Row titleRow = sheet.createRow(0);
//        //第一行，给每列添加标题
//        int wei = 0;
//        for(int i = 0 ; i < column.size() ; i ++) {
//            if (column.get(i) == 1) {
//                titleRow.createCell(wei++).setCellValue(Static.columns[i]);
//            }
//        }
//
//        //cell用于标记序号，若不用序号可以去掉
//        int cell = 1;
//        for (Student data : list) {
//            //从第二行开始保存数据
//            wei = 0;
//            Row row = sheet.createRow(cell);
//            for(int i = 0 ; i < column.size() ; i ++){
//                if(i == 0 && column.get(i) == 1){
//                    row.createCell(i).setCellValue(data.getSid());
//                }
//                if(i == 1  && column.get(i) == 1){
//                    row.createCell(i).setCellValue(data.getSname());
//                }
//                if (i == 2 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getPinyin());
//                }
//                if (i == 3 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getMarriage());
//                }
//                if (i == 4 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getBirthday());
//                }
//                if (i == 5 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getSex());
//                }
//                if (i == 6 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getNativeplace());
//                }
//                if (i == 7 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getNation());
//                }
//                if (i == 8 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getNature());
//                }
//                if (i == 9 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getAddress());
//                }
//                if (i == 10 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getNumber());
//                }
//                if (i == 11 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getQq());
//                }
//                if (i == 12 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getEmail());
//                }
//                if (i == 13 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getParentname());
//                }
//                if (i == 14 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getRelationship());
//                }
//                if (i == 15 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getWorkplace());
//                }
//                if (i == 16 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getParentnumber());
//                }
//                if (i == 17 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getStudentid());
//                }
//
//                if (i == 18 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getAdmission());
//                }
//                if (i == 19 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getDepartment());
//                }
//                if (i == 20 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getMajor());
//                }
//                if (i == 21 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getStructure());
//                }
//                if (i == 22 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getGrade());
//                }
//                if (i == 23 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getTeam());
//                }
//                if (i == 24 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getLandscape());
//                }
//                if (i == 25 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getBuilding());
//                }
//                if (i == 26 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getDormitory());
//                }
//                if (i == 27 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getHighschool());
//                }
//                if (i == 28 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getOrigin());
//                }
//                if (i == 29 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getPicture());
//                }
//                if (i == 30 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getPostalcode());
//                }
//                if (i == 31 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getHealthstatus());
//                }
//                if (i == 32 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getSkills());
//                }
//                if (i == 33 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getHobbies());
//                }
//                if (i == 34 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getFamilysituation());
//                }
//                if (i == 35 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getOnlychild());
//                }
//                if (i == 36 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getDisability());
//                }
//                if (i == 37 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getDisabilitytype());
//                }
//                if (i == 38 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getLeftbehind());
//                }
//                if (i == 39 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getOrphans());
//                }
//                if (i == 40 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getMartyrchild());
//                }
//                if (i == 41 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getMigrantchild());
//                }
//                if (i == 42 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getPreeducation());
//                }
//                if (i == 43 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getStation());
//                }
//                if (i == 44 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getNationality());
//                }
//                if (i == 45 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getBankcard());
//                }
//                if (i == 46 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getLanguages());
//                }
//                if (i == 47 && column.get(i) == 1) {
//                    row.createCell(i).setCellValue(data.getProficiency());
//                }
//
//            }
////            row.createCell(0).setCellValue(cell);
////            row.createCell(1).setCellValue(data.getWaterlevel());
////            row.createCell(2).setCellValue(data.getTemperature());
////            row.createCell(3).setCellValue(data.getAirpressure());
////            row.createCell(4).setCellValue(data.getTime());
//            cell++;
//        }
//        return wb;
//    }

    public static XSSFWorkbook getDeviceDataByExcel(List<ProductMaterial> list ) {
        //先查出数据库数据
        XSSFWorkbook wb = new XSSFWorkbook();
        //创建一张表
        Sheet sheet = wb.createSheet("deviceData");
        //创建第一行，起始为0
        Row titleRow = sheet.createRow(0);
        //第一行，给每列添加标题
        int wei = 0;
        for (int i = 0; i < Static.ProductColumns.length; i++) {
            titleRow.createCell(wei++).setCellValue(Static.ProductColumns[i]);

        }

        //cell用于标记序号，若不用序号可以去掉
        int cell = 1;
        for (ProductMaterial data : list) {
            //从第二行开始保存数据
            wei = 0;
            Row row = sheet.createRow(cell);
            for (int i = 0; i < Static.ProductColumns.length; i++) {
                if (i == 0) {
                    row.createCell(i).setCellValue(data.getProductid());
                }
                if (i == 1) {
                    row.createCell(i).setCellValue(data.getName());
                }
                if (i == 2) {
                    row.createCell(i).setCellValue(data.getPrice());
                }
                if (i == 3 && data.getDescription() != null) {
                    row.createCell(i).setCellValue(data.getDescription());
                }

                if (i == 4) {
                    String type = "咖啡";
                    if (data.getCategoryid() == 2) type = "茶饮";
                    else if (data.getCategoryid() == 3) type = "甜品";
                    row.createCell(i).setCellValue(type);
                }

                if (i == 5) {
                    row.createCell(i).setCellValue(String.valueOf(data.getMaterial()));
                }

            }
            cell++;
        }
        return wb;
    }

    public static XSSFWorkbook getDeviceDataByExcelMaterial(List<Material> selectList) {
        //先查出数据库数据
        XSSFWorkbook wb = new XSSFWorkbook();
        //创建一张表
        Sheet sheet = wb.createSheet("deviceData");
        //创建第一行，起始为0
        Row titleRow = sheet.createRow(0);
        //第一行，给每列添加标题
        int wei = 0;
        for (int i = 0; i < Static.MetarialColumns.length; i++) {
            titleRow.createCell(wei++).setCellValue(Static.MetarialColumns[i]);

        }

        //cell用于标记序号，若不用序号可以去掉
        int cell = 1;
        for (Material data : selectList) {
            //从第二行开始保存数据
            wei = 0;
            Row row = sheet.createRow(cell);
            for (int i = 0; i < Static.MetarialColumns.length; i++) {
                if (i == 0) {
                    row.createCell(i).setCellValue(data.getMid());
                }
                if (i == 1) {
                    row.createCell(i).setCellValue(data.getMname());
                }
                if (i == 2) {
                    row.createCell(i).setCellValue(data.getMnum());
                }
            }
            cell++;
        }
        return wb;

    }

    public static XSSFWorkbook getDeviceDataByExcelMaterialMb() {
        //先查出数据库数据
        XSSFWorkbook wb = new XSSFWorkbook();
        //创建一张表
        Sheet sheet = wb.createSheet("deviceData");
        //创建第一行，起始为0
        Row titleRow = sheet.createRow(0);
        //第一行，给每列添加标题
        int wei = 0;
        for (int i = 1; i < Static.MetarialColumns.length; i++) {
            titleRow.createCell(wei++).setCellValue(Static.MetarialColumns[i]);

        }
        return wb;
    }

    public static XSSFWorkbook getDeviceDataByExcelStaffs(List<Staffs> selectList) {
        //先查出数据库数据
        XSSFWorkbook wb = new XSSFWorkbook();
        //创建一张表
        Sheet sheet = wb.createSheet("deviceData");
        //创建第一行，起始为0
        Row titleRow = sheet.createRow(0);
        //第一行，给每列添加标题
        int wei = 0;
        for (int i = 0; i < Static.StaffsColumns.length; i++) {
            titleRow.createCell(wei++).setCellValue(Static.StaffsColumns[i]);

        }

        //cell用于标记序号，若不用序号可以去掉
        int cell = 1;
        for (Staffs data : selectList) {
            //从第二行开始保存数据
            wei = 0;
            Row row = sheet.createRow(cell);
            for (int i = 0; i < Static.StaffsColumns.length; i++) {
                if (i == 0) {
                    row.createCell(i).setCellValue(data.getStaffid());
                }
                if (i == 1) {
                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
                    row.createCell(i).setCellValue(data.getBirthday().format(formatter));
//                    row.createCell(i).setCellValue(new SimpleDateFormat("yyyy-MM-dd").format(data.getBirthday()));
                }
                if (i == 2) {
                    row.createCell(i).setCellValue(data.getName());
                }
                if (i == 3) {
                    row.createCell(i).setCellValue(data.getPhonenumber());
                }
                if (i == 4) {
                    String gender = "女";
                    if (data.getGender().equals("M")) gender = "男";
                    row.createCell(i).setCellValue(gender);
                }
                if (i == 5) {
                    String type = "在职";
                    if (data.getStatus() == 0) type = "离职";
                    row.createCell(i).setCellValue(type);
                }


            }
            cell++;
        }
        return wb;
    }

    public static XSSFWorkbook getDeviceDataByExcelSupplierMb() {
        //先查出数据库数据
        XSSFWorkbook wb = new XSSFWorkbook();
        //创建一张表
        Sheet sheet = wb.createSheet("deviceData");
        //创建第一行，起始为0
        Row titleRow = sheet.createRow(0);
        //第一行，给每列添加标题
        int wei = 0;
        for (int i = 0; i < Static.SupplierColumns.length; i++) {
            titleRow.createCell(wei++).setCellValue(Static.SupplierColumns[i]);

        }
        return wb;
    }

    public static XSSFWorkbook getDeviceDataByExcelSupplier(List<SupplierAndMaterials> allNoPage) {
        //先查出数据库数据
        XSSFWorkbook wb = new XSSFWorkbook();
        //创建一张表
        Sheet sheet = wb.createSheet("deviceData");
        //创建第一行，起始为0
        Row titleRow = sheet.createRow(0);
        //第一行，给每列添加标题
        int wei = 0;
        for (int i = 0; i < Static.SupplierColumns.length; i++) {
            titleRow.createCell(wei++).setCellValue(Static.SupplierColumns[i]);

        }
        int cell = 1;
        for (SupplierAndMaterials data : allNoPage) {
            //从第二行开始保存数据
            wei = 0;
            Row row = sheet.createRow(cell);
            for (int i = 0; i < Static.SupplierColumns.length; i++) {
                if (i == 0) {
                    row.createCell(i).setCellValue(data.getName());
                }
                if (i == 1) {
                    row.createCell(i).setCellValue(data.getPhone());
                }
                if (i == 2) {
                    row.createCell(i).setCellValue(data.getAddress());
                }
                if (i == 3) {
                    row.createCell(i).setCellValue(data.getMname());
                }
                if (i == 4) {
                    row.createCell(i).setCellValue(data.getPurchaseprice());
                }
            }
            cell++;
        }
        return wb;
    }
}
